/*
 * @Author: Qimu
 * @Date: 2020-04-20 13:38:40
 * @LastEditors: Qimu
 * @LastEditTime: 2020-07-09 20:14:19
 * @Description: file content
 * @FilePath: \vue-admin-koa2\koa2_api\controllers\article.js
 */
const Category = require('../module/schama/category');
const Article = require('../module/schama/article');
const tools = require('../module/utlis/tools');
const query = require('../module/utlis/query');
// const config = require('../module/config/config');

//文章分类用户业务
class ArticleCategoryController {
  //文章分类新增(POST)
  static async setArticleCategory(ctx) {
    const { category_name, category_sketch, category_status } = ctx.request.body;
    const data = { category_name, category_sketch, category_status, category_createTime: tools.GMTtoStr(new Date()), category_updateTime: tools.GMTtoStr(new Date()) }//文章分类数据
    await query.save(Category, data) //保存文章分类新增数据
    ctx.body = {
      'data': {},
      'meta': {
        'status': 200,
        'message': `${category_name}-信息保存成功!`
      }
    }
  }

  //获取文章分类数据列表(GET)
  static async getArticleCategoryList(ctx) {
    let queryCategoryResult = await query.find(Category);//查找文章分类数据结果
    if (queryCategoryResult.length > 0) {
      ctx.body = {
        'data': queryCategoryResult,
        'meta': {
          'status': 200,
          'message': '文章分类列表获取成功!'
        }
      }
    } else {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 500,
          'message': '文章分类列表获取失败!'
        }
      }
    }
  }

  //提交编辑文章分类
  static async putEditArticleCategory(ctx) {
    let updateArticleCategoryResult //编辑文章分类后变量保存
    const { _id, category_name, category_sketch } = ctx.request.body;
    updateArticleCategoryResult = await query.updateOne(Category, { _id }, { category_name, category_sketch });//更新文章分类数据结果
    if (updateArticleCategoryResult.ok === 1) {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 200,
          'message': `${category_name}-文章分类编辑成功!`
        }
      }
    } else {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 500,
          'message': `${category_name}-文章分类编辑失败!`
        }
      }
    }
  }

  //删除文章分类
  static async deleteArticleCategory(ctx) {
    let delCategoryResult
    delCategoryResult = await query.findByIdAndDelete(Category, { _id: ctx.params.id });//删除文章分类数据结果
    console.log('delCategoryResult', delCategoryResult);
    if (delCategoryResult) {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 200,
          'message': `${delCategoryResult.category_name}-文章分类删除成功!`
        }
      }
    } else {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 500,
          'message': `${delCategoryResult.category_name}-文章分类删除失败!`
        }
      }
    }
  }

  //新增文章内容(POST)
  static async addArticle(ctx) {
    const { article_title, article_summary, article_category, article_tagValue, article_isPublish, article_content } = ctx.request.body;
    const data = { article_title, article_summary, article_category, article_tagValue, article_isPublish, article_content, article_createTime: tools.GMTtoStr(new Date()) }//文章新增数据
    await query.save(Article, data) //保存文章分类新增数据
    ctx.body = {
      'data': {},
      'meta': {
        'status': 200,
        'message': `${article_title}-文章保存成功!`
      }
    }
  }


  //获取文章分类数据列表(GET)
  static async getArticleList(ctx) {
    let queryArticleResult = await query.find(Article);//查找文章列表数据结果
    if (queryArticleResult.length > 0) {
      ctx.body = {
        'data': queryArticleResult,
        'meta': {
          'status': 200,
          'message': '文章列表获取成功!'
        }
      }
    } else {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 500,
          'message': '文章列表获取失败!'
        }
      }
    }
  }

  //文章详情
  static async getArticleDetail(ctx) {
    let articleDetailResult
    articleDetailResult = await query.findById(Article, { _id: ctx.params.id });//文章详情数据结果
    if (articleDetailResult) {
      ctx.body = {
        'data': articleDetailResult,
        'meta': {
          'status': 200,
          'message': `${articleDetailResult.article_title}-文章查找成功!`
        }
      }
    } else {
      ctx.body = {
        'data': {},
        'meta': {
          'status': 500,
          'message': `${articleDetailResult.article_title}-文章查找失败!`
        }
      }
    }
  }

}

exports = module.exports = ArticleCategoryController;